package cn.yang.trigger.api;

import cn.yang.trigger.api.dto.*;
import cn.yang.types.model.Response;

import java.math.BigDecimal;
import java.util.List;

/**
 * @version v1.0
 * @ClassName: cn.yang.trigger.api
 * @Description: TODO
 * @Author: YJ
 */
public interface IRaffleActivityService {
    /**
     * 活动装配，数据预热缓存
     *
     * @param activityId 活动ID
     * @return 装配结果
     */
    Response<Boolean> armory(Long activityId);

    /**
     * 活动抽奖接口
     *
     * @param request 请求对象
     * @return 返回结果
     */
    Response<ActivityDrawResponseDTO> draw(ActivityDrawRequestDTO request);

    /**
     * 日历签到返利接口
     *
     * @param userId 用户ID
     * @return 签到获得
     */
    Response<Boolean> calendarSignRebate(String userId);

    /**
     * 判断是否完成日历签到返利 接口
     *
     * @param userId 用户ID
     * @return 签到结果
     */
    Response<Boolean> isCalendarSignRebate(String userId);

    /**
     * 账户查询
     *
     * @param request 数据传输对象
     * @return 返回UserActivityAccountResponseDTO
     */
    Response<UserActivityAccountResponseDTO> queryUserActivityAccount(UserActivityAccountRequestDTO request);

    Response<List<SkuProductResponseDTO>> querySkuProductListByActivityId(Long activityId);

    Response<BigDecimal> queryUserCreditAccount(String userId);

    Response<Boolean> creditPayExchangeSku(SkuProductShopRequestDTO request);
}
